package java19_3_24_lambda;
@FunctionalInterface
interface IMessage {
    void printMessage(String msg);
    // 是一个普通方法，不是抽象方法，子类不一定需要覆写
    default void test() {
        System.out.println("这是一个普通方法");
    }
}
class MessageImpl implements IMessage {
    @Override
    public void printMessage(String msg) {
        System.out.println(msg);
    }
}
public class LambdaTest {
    public static void main(String[] args) {
        IMessage message = new MessageImpl();
        message.printMessage("正经用法");
        // 匿名内部类，
        IMessage message1 = new IMessage() {
            @Override
            public void printMessage(String msg) {
                System.out.println(msg);
            }
        };
        message1.printMessage("匿名内部类的用法");
        // Lambda表达式
        IMessage message2 = (msg) -> System.out.println(msg);
        message2.printMessage("Lambda表达式的写法");
        IMessage message3 = new MessageImpl();
        message3.test();
    }
}
